package cn.liumouren.jzxd.entity;

import cn.liumouren.jzxd.common.handler.ListEatTypeHandler;
import cn.liumouren.jzxd.common.handler.ListLiveTypeHandler;
import cn.liumouren.jzxd.common.handler.ListPlayTypeHandler;
import cn.liumouren.jzxd.entity.dto.Eat;
import cn.liumouren.jzxd.entity.dto.Live;
import cn.liumouren.jzxd.entity.dto.Play;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author Freeman Liu
 * @email llw599502537@gmail.com
 * @date 2020-10-30 16:52:42
 */
@Data
@TableName("tb_scene")
public class Scene implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private String id;
    /**
     * 景点名称
     */
    @ApiModelProperty("景点名称")
    private String name;
    /**
     * 景点描述
     */
    @ApiModelProperty("景点描述")
    private String description;
    /**
     * 详细地址
     */
    @ApiModelProperty("景点详细地址")
    private String address;
    /**
     * 联系电话
     */
    @ApiModelProperty("联系人电话")
    private String phone;
    /**
     * 联系人姓名
     */
    @ApiModelProperty("联系人姓名")
    private String contactName;
    /**
     * 热度
     */
    @ApiModelProperty("景点热度")
    private Integer hot;
    /**
     * 省份
     */
    @ApiModelProperty("景点所在省")
    private String province;
    /**
     * 市
     */
    @ApiModelProperty("景点所在市")
    private String municipal;
    /**
     * 区
     */
    @ApiModelProperty("景点所在区")
    private String district;
    /**
     * 经度
     */
    private Double longitude;
    /**
     * 纬度
     */
    private Double latitude;

    private Date addTime;

    /**
     * 所有图片id用;隔开
     */
    @ApiModelProperty("景点包含的所有图片id,多个用;隔开(如 1;2;3;4)")
    private String picId;

    @TableField(exist = false)
    private List<String> urls;

    @TableField(exist = false)
    private List<Tag> tags;


    /**
     * 周边吃的
     */
    @TableField(typeHandler = ListEatTypeHandler.class)
    private List<Eat> surroundingEat;
    /**
     * 周边住的
     */
    @TableField(typeHandler = ListLiveTypeHandler.class)
    private List<Live> surroundingLive;
    /**
     * 周边玩的
     */
    @TableField(typeHandler = ListPlayTypeHandler.class)
    private List<Play> surroundingPlay;
}
